/*
*	Эта переменная говорит о том, что файл загружен браузером.
*/
var RGSLoaded = true;
/*
*	Функция сигнализирует, что этот .js загрузился
*/
var RGSPrice;
var RGSPriceDiscount;
var RGSNotes = '<p></p>';
var RGSInfo = {
	name: "Росгосстрах",
	price: 0,
	discountPrice: 0,
	notesToDisplay: new Array(0),
	notesSpecial: '',
	notes: "",
	rating: 0,
	realFr: 0,
	frArray: new Array(0),
	countSpecialNotes: 0,
	calc: function () {
		calculateRGS();
	}
};
var RGSXML = false;

//	Функция расчета стоимости КАСКО фирмы РГС
var rgsNumErrors = 0;

function calculateRGS() {
	var k1, k2, k3, k4, k5, k6, k7, k8, k_right_helm, k_un, realFr;
	RGSPrice = 0;
	if ($('input:checked').filter('[name=town]').val() != 'spb' || rgsNumErrors > 3) {
		counterCasco();
		RGSInfo.price = parseInt('a');
		RGSInfo.discountPrice = parseInt('a');
	} else
	if (!RGSXML) $.ajax({
		url: "rgs/RGS_cars.xml?" + rand % 1000,
		success: function (response) {
			RGSXML = response;
			calcRGS(RGSXML);
		},
		error: function (XMLHttpRequest, textStatus, errorThrown) {
			rgsNumErrors++;
			calculateRGS()
		}
	});
	else
	calcRGS(RGSXML);
}

function calcRGS(response) {
	rgsNumErrors = 0;
	//	Ищем машину
	RGSInfo.countSpecialNotes = 0;
	RGSInfo.notesToDisplay = new Array(0);
	RGSInfo.notesSpecial = '';
	var RGSXml = $(response);
	var kXml = RGSXml.find('Ki:first');
	RGSXml = RGSXml.find('carList:first');
	var manufacturerRGS = RGSXml.find('m>n').filter(function () {
		return $(this).text().toUpperCase() == manufacturerName.toUpperCase()
	}).eq(0).parent();
	var alarmInfo;
	var kReg;
	var manufacturer = RGSXml.find("m>n").filter(function () {
		return $(this).text().toUpperCase() == manufacturerName.toUpperCase()
	});
	carInfo = manufacturer.parent().find("c>n").filter(function () {
		return $(this).text().toUpperCase() == carName.toUpperCase()
	}).parent();
	if (carInfo.length == 0) carInfo = manufacturer.parent().find("c>n").filter(function () {
		return $(this).text() == "*"
	}).parent();
	if (carInfo.length == 0) carInfo = RGSXml.find("m>n").filter(function () {
		return $(this).text() == "*"
	}).parent().find("c>n").filter(function () {
		return $(this).text() == "*"
	}).parent();

	var fr;
	var group = carInfo.find("g").eq(0).text();

	var kUnd = parseFloat(carInfo.find("r").eq(0).text());

	//	alert('g='+group+'\nkUnd='+kUnd);
	var kRassrochka;
	var kSto = 1;
	var kAgeExp;
	var kAgeExpMin = 0
	var drAId, drEid;
	var selectedAlarm;
	var countDrivers = 1;

	var kVar;
	var kCarAge = carAge;
	var age = parseInt(carAge.replace('carAge', ''));
	if (!rus) {
		if (age <= 5) kVar = "A";
		else {
			kVar = "B";
			age = age - 3;
		}
	} else {
		if (age < 4) kVar = "A";
		else {
			kVar = "B";
			age = age - 3;
		}
	}
	var kCasco = kXml.find("kKasko>" + kVar + ">" + "group>case");

	kCasco = kCasco.filter(function () {
		return $(this).text() == group
	});
	kCasco = kCasco.parent().find(kCarAge).text();
	kCasco = parseFloat(kCasco);

/*	
*	Проверяем стаж водителей+мультидрайв
*/

	if (multiDrive) {
		kAgeExp = parseFloat(kXml.find('multiDrive').eq(0).text());
		if ($("#corporate:checked").length > 0) {
			kAgeExp = 1;
		}
	} else {
		var drA, drE;
		for (var i = 0; i < driversListForCalc.length; i++) {
			drA = parseInt(driversListForCalc.eq(i).find('.f-driver-c2').eq(0).find('input').eq(0).val());
			drE = parseInt(driversListForCalc.eq(i).find('.f-driver-c2').eq(0).find('input').eq(1).val());
			if (parseInt(drA) <= 21) drAId = 'less22';
			else if (parseInt(drA) < 25) drAId = 'less25';
			else if (parseInt(drA) < 30) drAId = 'less30';
			else if (parseInt(drA) < 35) drAId = 'less35';
			else if (parseInt(drA) < 50) drAId = 'less50';
			else if (parseInt(drA) < 65) drAId = 'less65';
			else
			drAId = 'more64';
			if (parseInt(drE) < 3) drEid = 'less3';
			else if (parseInt(drE) < 5) drEid = 'less5';
			else if (parseInt(drE) < 10) drEid = 'less10';
			else
			drEid = 'more9';
			if (parseFloat(kXml.find(drAId + '>' + drEid).eq(0).text()) > kAgeExpMin) kAgeExpMin = parseFloat(kXml.find(drAId + '>' + drEid).eq(0).text());
		}
		kAgeExp = kAgeExpMin;
	}

/*
*	Оплата в рассрочку
*/
	kRassrochka = 1;

/*
*  Способ возмещения ущерба
*/
	var selectedStoa = $('#f-2').find('input:checked').filter("[name='sto']").eq(0).val();
	if (kVar == "B" || kVar == "V") {
		switch (selectedStoa) {
		case "0":
			RGSInfo.countSpecialNotes++;
			RGSInfo.notesSpecial += "Ущерб возмещается денежной выплатой<br>";
			break;
		case "1":
			break;
		case "3":
			RGSInfo.countSpecialNotes++;
			RGSInfo.notesSpecial += "Ущерб возмещается денежной выплатой<br>";
			break;
		case "4":
			RGSInfo.countSpecialNotes++;
			RGSInfo.notesSpecial += "Ущерб возмещается денежной выплатой<br>";
			break;
		}
	}
	kSto = parseFloat(kSto);
	kSto = 1;
	fr = selectedFr / parseInt(price) * 100;
/*
*   Франшиза
*/
	//                        alert("fr0="+fr);
	if (fr < 1) {
		fr = 1;
		realFr = 0;
	} else if (fr < 2) {
		fr = 1;
	} else if (fr < 3) {
		fr = 2;
	} else if (fr < 4) {
		fr = 3;
	} else if (fr < 5) {
		fr = 4;
	} else if (fr < 6) {
		fr = 5;
	} else if (fr < 7) {
		fr = 6;
	} else if (fr < 8) {
		fr = 7;
	} else if (fr < 9) {
		fr = 8;
	} else if (fr < 10) {
		fr = 9;
	} else {
		fr = 9;
	}
	if (selectedFr / parseInt(price) * 100 >= 1) {
		realFr = parseInt(parseInt(price) / 100 * fr);
		fr = kXml.find("fr>case>value").filter(function () {
			return parseInt($(this).text()) == fr
		}).eq(0).parent().find("frK");
		fr = parseFloat(fr.text());
	}


/*
*	Региональный коэффициент
*/
	if (kXml.find("kReg>case>group").filter(function () {
		return $(this).text() == group
	}).length == 1) kReg = parseFloat(kXml.find("kReg>case>group").filter(function () {
		return $(this).text() == group
	}).eq(0).parent().find("value").text());
	else kReg = 1;
/*
*	Сигнализация				
*/
	selectedAlarm = 1;
/*
*   Бонус малус
*/
	var malus = 1
/*
*   окончательный расчет
*/

	RGSPrice = parseInt(price) * kRassrochka * kAgeExp * kSto * selectedAlarm * kCasco / 100 * fr * malus * kUnd * kReg;
/*
alert(
"price="+price+"\n"
+"kRassrochka="+kRassrochka+"\n"
+"carAge="+carAge+"\n"
+"kCarAge="+kCarAge+"\n"
+"kAgeExp="+kAgeExp+"\n"
+"kSto="+kSto+"\n"
+"selectedAlarm="+selectedAlarm+"\n"
+"kCasco="+kCasco/100+"\n"
+"fr="+fr+"\n"
+"malus="+malus+"\n"
+"kUnd="+kUnd+"\n"
+"kReg="+kReg+"\n"
+"group="+group);
*/
	try {
		var discount = (100 - parseFloat($('#sk7').text())) / 100;
		if (discount.length != 0) RGSPriceDiscount = RGSPrice * discount;
		else RGSPriceDiscount = RGSPrice;
		RGSInfo.price = RGSPrice;
		RGSInfo.discountPrice = RGSPriceDiscount;
		RGSInfo.notes = RGSNotes;
	} catch (eee) {
		alert(eee);
	}
	RGSInfo.rating = 4;
	if (!realFr) realFr = 0;
	RGSInfo.realFr = realFr;
	RGSInfo.notesSpecial += "Размер франшизы " + addSpaces(RGSInfo.realFr.toString()) + " руб.";
	RGSInfo.notesToDisplay.push("<span style='margin:0px; padding:0px; margin-left:24px;; position:relative; top:5px;'>Франшиза: " + addSpaces(RGSInfo.realFr.toString()) + " руб.</span><br>");
	RGSInfo.notesSpecial = 'Особенности расчета страховой компании Росгосстрах:<br>' + RGSInfo.notesSpecial;
	counterCasco();
}